package com.sykj.why.mongo.service;

import com.sykj.why.mongo.document.entity.ContentCategoryT;
import com.sykj.why.mongo.dto.PageDTO;
import com.sykj.why.util.Page;

import java.util.List;

/**
 * @author Eleven
 * @date 2019/6/4
 * @desc 内容类型业务访问层
 */

public interface ContentCategoryTService extends BasicService<ContentCategoryT> {

    /**
     * 添加内容类型
     * @param contentCategoryT
     */
    void saveContentCategory(ContentCategoryT contentCategoryT);

    /**
     * 删除内容类型
     * @param id
     */
    void removeContentCategory(String id);

    /**
     * 修改内容类型
     * @param contentCategoryT
     */
    void updateContentCategory(ContentCategoryT contentCategoryT);

    /**
     * 启用/禁用内容类型
     * @param id
     * @param flag
     */
    void disableOrEnable(String id,boolean flag);

    /**
     * 验证内容类型名称是否重复
     * @param contentCategoryT
     */
    void verifyName(ContentCategoryT contentCategoryT);

    /**
     * 通过id查询内容类型
     * @param id
     * @return
     */
    ContentCategoryT findById(String id);

    /**
     * 通过id查询内容类型
     * @param id
     * @return
     */
    ContentCategoryT findCategoryById(String id);

    /**
     * 查询所有内容类型
     * @return
     */
    List<ContentCategoryT> findAll();

    /**
     * 分页查询内容类型
     * @param pageDTO
     * @return
     */
    Page findByPage(PageDTO pageDTO);

}
